package integer;

public class IntegerDemo01 {
    /**
    包装类
     java有两大类型：基本类型和引用类型
     区别：
     基本类型直接以值的形式存在
     引用类型则以对象的形式存在

     基本类型不具备面向对象特性( 封装，继承，多态)


     */
    public static void main(String[]args){
        int d=123;
        //1.使用构造方法，（不推荐）
        Integer i1=new Integer(d);
        Integer i2=new Integer(d);
        System.out.println(i1==i2);
        System.out.println(i1.equals(i2));
        System.out.println("----------------------");
        //2.包装类提供了静态方法valuOf可以将基本类型转化为包装类（推荐）
        Integer i3=Integer.valueOf(d);
       Integer i4=  Integer.valueOf(d);
        System.out.println(i3==i4);
        System.out.println(i3.equals(i4));
        System.out.println("-----------------------------------");
        //3.jdk5之后有自动装箱特性，可以在基本类型
        Integer i5=d;//触发jdk5后编译器的特性：自动装箱
        //上述代码会被编译器改为:Integer i5 = Integer.valueOf(d);
        Double dou = 123.123;//Double dou = Double.valueOf(123.123);

        //包装类还原为基本类型
        //int s=i5.intValue();
        int s=i5;
        double dd=dou;


    }
}
